﻿//////////////////////////////////////////////////////////////////////////////
//
//  Copyright © 1998-2024 Glodon Company Limited.  All rights reserved.
//
//  Use of this software is subject to the terms of the Glodon license
//  agreement provided at the time of installation or download, or which
//  otherwise accompanies this software in either electronic or hard copy form.  
//
//////////////////////////////////////////////////////////////////////////////

// NotReviewedButNeeded

#pragma once

#include "GcmpCommonDraw.h"

namespace gcmp
{
    class IActionDrawCurvePickBehavior;

    /// \brief 配置绘制拾取线Action的生成器DrawCurvePickActionCreator参数
    class GCMP_COMMON_DRAW_EXPORT ActionDrawCurveByPickInput
    {
    public:
        /// \brief 构造函数
        /// \param opActionBehavior 绘制拾取线Action的Behavior
        ActionDrawCurveByPickInput(OwnerPtr<gcmp::IActionDrawCurvePickBehavior> opActionBehavior);

        /// \brief 析构函数
        ~ActionDrawCurveByPickInput() {}

    public:
        /// \brief 获取绘制拾取线Action的Behavior
        /// \return 绘制拾取线Action的Behavior指针
        OwnerPtr<IActionDrawCurvePickBehavior> GetDrawCurvePickBehavior();

        /// \brief 设置绘制拾取线Action的Behavior
        /// \param opActionBehavior 绘制拾取线Action的Behavior
        /// \return void
        void SetDrawCurvePickBehavior(OwnerPtr<gcmp::IActionDrawCurvePickBehavior> opActionBehavior);

    private:
        OwnerPtr<gcmp::IActionDrawCurvePickBehavior> m_opActionBehavior;
    };
}
